/**
 * 开发工具集
 * 仅在开发环境使用的辅助工具函数
 */
import { dataGenerator } from '../services/data-generator'

/**
 * 执行数据库初始化
 * 快速生成测试数据
 */
export const initDevDatabase = async (): Promise<void> => {
  // #ifdef APP-PLUS
  // 只在开发环境执行
  // 注：uni-app没有直接暴露process.env.NODE_ENV，这里使用固定值
  const isDevelopment = true // 在生产构建时应将此设置为false
  if (isDevelopment) {
    const count = 10 // 默认生成10条数据
    try {
      console.log(`[开发模式] 正在初始化数据库并生成${count}条测试数据...`)
      await dataGenerator.generateTasks(count)
      console.log('[开发模式] 测试数据生成完成')
    } catch (error) {
      console.error('[开发模式] 生成测试数据失败:', error)
    }
  }
  // #endif
}

/**
 * 开发环境工具菜单
 * 在开发环境下显示快捷操作菜单
 */
export const showDevTools = (): void => {
  // #ifdef APP-PLUS
  // 只在开发环境执行
  // 注：uni-app没有直接暴露process.env.NODE_ENV，这里使用固定值
  const isDevelopment = true // 在生产构建时应将此设置为false
  if (isDevelopment) {
    uni.showActionSheet({
      itemList: [
        '生成10条任务数据',
        '生成20条任务数据',
        '生成所有类型测试数据',
        '清空所有数据',
        '打开测试数据管理'
      ],
      success: async (res) => {
        try {
          switch (res.tapIndex) {
            case 0:
              await dataGenerator.generateTasks(10)
              uni.showToast({ title: '已生成10条任务数据', icon: 'success' })
              break
            case 1:
              await dataGenerator.generateTasks(20)
              uni.showToast({ title: '已生成20条任务数据', icon: 'success' })
              break
            case 2:
              await dataGenerator.generateAllTestData()
              uni.showToast({ title: '已生成所有类型测试数据', icon: 'success' })
              break
            case 3:
              await dataGenerator.clearAllTestData()
              uni.showToast({ title: '已清空所有数据', icon: 'success' })
              break
            case 4:
              uni.navigateTo({ url: '/pages/dev/test-data' })
              break
          }
        } catch (error) {
          console.error('[开发模式] 操作失败:', error)
          uni.showToast({ title: '操作失败', icon: 'none' })
        }
      }
    })
  }
  // #endif
} 